//// JsonTypeHandler.java
//package com.example.aftersales.utils;
//
//import com.fasterxml.jackson.core.JsonProcessingException;
//import com.fasterxml.jackson.databind.ObjectMapper;
//import org.apache.ibatis.type.JdbcType;
//import org.apache.ibatis.type.TypeHandler;
//
//import java.sql.CallableStatement;
//import java.sql.PreparedStatement;
//import java.sql.ResultSet;
//import java.sql.SQLException;
//import java.util.ArrayList;
//import java.util.List;
//
//public class JsonTypeHandler implements TypeHandler<List<String>> {
//    private static final ObjectMapper objectMapper = new ObjectMapper();
//
//    @Override
//    public void setParameter(PreparedStatement ps, int i, List<String> parameter, JdbcType jdbcType) throws SQLException {
//        try {
//            ps.setString(i, objectMapper.writeValueAsString(parameter));
//        } catch (JsonProcessingException e) {
//            throw new SQLException("JSON序列化失败", e);
//        }
//    }
//
//    @Override
//    public List<String> getResult(ResultSet rs, String columnName) throws SQLException {
//        String json = rs.getString(columnName);
//        if (json == null || json.isEmpty()) {
//            return new ArrayList<>();
//        }
//        try {
//            return objectMapper.readValue(json, List.class);
//        } catch (JsonProcessingException e) {
//            throw new SQLException("JSON反序列化失败", e);
//        }
//    }
//
//    @Override
//    public List<String> getResult(ResultSet rs, int columnIndex) throws SQLException {
//        String json = rs.getString(columnIndex);
//        if (json == null || json.isEmpty()) {
//            return new ArrayList<>();
//        }
//        try {
//            return objectMapper.readValue(json, List.class);
//        } catch (JsonProcessingException e) {
//            throw new SQLException("JSON反序列化失败", e);
//        }
//    }
//
//    @Override
//    public List<String> getResult(CallableStatement cs, int columnIndex) throws SQLException {
//        String json = cs.getString(columnIndex);
//        if (json == null || json.isEmpty()) {
//            return new ArrayList<>();
//        }
//        try {
//            return objectMapper.readValue(json, List.class);
//        } catch (JsonProcessingException e) {
//            throw new SQLException("JSON反序列化失败", e);
//        }
//    }
//}